Skip to main content

什么是作用域?作用域的类型?什么是作用域链?

什么是作用域

Javascript 中的作用域说的是变量的可访问性和可见性。也就是说整个程序中哪些部分可以访问这个变量,或者说这个变量都在哪些地方可见。

作用域的类型

Javascript 中有三种作用域:

  • 全局作用域
  • 函数作用域
  • 块级作用域

什么是作用域链

在函数中使用一个变量时,首先从当前作用域下查找变量,如果不存在,则继续从上级作用链查找,直到全局作用域;如果一直找不到,则会报错

var a = 2
function fn() {
var a = 1
function fn2() {
console.log(a)
}
fn2()
}

fn()
//打印出:1
var a = 2

function fn() {
var a = 1
fn2()
}

function fn2() {
console.log(a)
}

fn()
//打印出:2